﻿using Basic.FlowModel.AuditLog;
using Basic.FlowModel.DB;
using Basic.FlowRemoteModel.FlowAudit.Model;
using WeDonekRpc.Model;

namespace Basic.FlowCollect
{
    public interface IFlowAuditLogCollect
    {
        Result[] Query<Result> ( AuditLogQuery query, IBasicPage paging, out int count ) where Result : class;
        CreateResult Create ( AuditLogAdd add );
        long Add ( AuditLogAdd add, out long itemId );
        bool IsInProgress ( long appId, string linkType, long linkPk );
        Result Get<Result> ( long logId ) where Result : class;
        AuditResult SaveAuditResult ( SaveAuditBody body );
        void Close ( DBFlowAuditLog log, long empId );
        bool CheckIsUse ( long flowId );
    }
}